/**
 *  给定一个字符串，只包含字母w和b，将其重复无限次，问是否存在子串恰好包含W个w和B个b
 *  注意到W和B的范围，将给定字符串重复20次即可。
 *  然后事先统计该串的每个子串的情况，最后查询即可
 */
#include <bits/stdc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using vll = vector<llt>;
using pii = pair<int, int>;

template<typename T>
void input(vector<T> & v, int n){
    v.assign(n + 1, {});
    for(int i=1;i<=n;++i) cin >> v[i];
    return;
}

template<typename T>
istream & operator >> (istream & is, vector<T> & v) {
    for(auto & i : v) is >> i;
    return is;
}


string T = "wbwbwwbwbwbw";

void work(){
    set<pii> ss;
    string S = T;
    for(int i=0;i<20;++i) S += T;
    int n = S.length();
    for(int i=0;i<n;++i){
        for(int j=i;j<n;++j){
            auto sub = S.substr(i, j - i + 1);
            int a = 0, b = 0;
            for(auto c : sub)if(c=='w')++a;else ++b;
            ss.insert({a, b});
        }
    }
    int w, b; cin >> w >> b;
    auto it = ss.find({w, b});
    if(it != ss.end()) cout << "Yes\n";
    else cout << "No\n";
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}